package com.lfs.market.service;

import cn.dev33.satoken.stp.SaTokenInfo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lfs.market.model.R;
import com.lfs.market.model.dto.*;
import com.lfs.market.model.entity.User;

import java.util.List;
import java.util.Map;


public interface UserService extends IService<User> {
    /**
     * 登录
     * @param request
     * @return
     */
    SaTokenInfo login(UserLoginDto request);

    R<User> getUserInfo();


    void getLoginCode(String phone);

    R<User> getUserInfo(String userId);

    void updateUserInfoDetail(UpdateUserInfoDto dto);

    Page<User> getUserList(UserAdminPageDto dto);

    /**
     * 密码登录
     * @param request
     * @return
     */
    SaTokenInfo loginPwd(UserLoginDto request);

    void updateUserInfo(UpdateUserInfoDto dto);

    Map getNum1UserStat();

    List<Map> getUserStat();

    /**
     * 注册
     * @param request
     * @return
     */
    SaTokenInfo register(UserLoginDto request);

    /**
     * 根据用户ID查询用户信息
     * @param userId
     * @return
     */
    User getByUserId(String userId);

    /**
     * 后台创建用户
     * @param dto
     */
    void create(SystemUserCreateDto dto);

    /**
     * 删除用户
     * @param ids
     */
    void deleteUser(List<String> ids);

    /**
     * 修改用户
     * @param dto
     */
    void updateUser(SystemUserUpdateDto dto);
}
